package com.sanpu.kxe.rxservice.interfaces;

import com.alibaba.fastjson.JSONObject;
import com.sanpu.kxe.rxservice.MetaBean;

import java.util.Map;

import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.QueryMap;
import rx.Observable;

/**
 * Description：代还接口定义模块
 * Created by 薛勇军 on 2019/4/10.
 */

public interface RepayService {

    /**
     * 代还首页
     * @param param 请求参数
     * @return MetaBean
     */
    @FormUrlEncoded()
    @POST("app/client/repay/index.html")
    Observable<MetaBean> index(@FieldMap Map<String, String> param);

    /**
     * 解绑信用卡
     * @param param 请求参数
     * @return MetaBean
     */
    @FormUrlEncoded()
    @POST("app/client/repay/unbindCard.html")
    Observable<MetaBean> unbindCard(@FieldMap Map<String, String> param);

    /**
     * 绑定信用卡
     * @param param 请求参数
     * @return MetaBean
     */
    @FormUrlEncoded()
    @POST("app/client/repay/bindCard.html")
    Observable<MetaBean> bindCard(@FieldMap Map<String, String> param);

    /**
     * 获取费率列表
     * @param param 请求参数
     * @return MetaBean
     */
    @FormUrlEncoded()
    @POST("app/client/repay/repayFeeList.html")
    Observable<MetaBean> repayFeeList(@FieldMap Map<String, String> param);

    /**
     * 卡片计划列表
     * @param param 请求参数
     * @return MetaBean
     */
    @FormUrlEncoded()
    @POST("app/client/repay/cardPlanList.html")
    Observable<MetaBean> cardPlanList(@FieldMap Map<String, String> param);

    /**
     * 通过状态查询卡片计划列表
     * @param param 请求参数
     * @return MetaBean
     */
    @FormUrlEncoded()
    @POST("app/client/repay/cardPlanListForStatus.html")
    Observable<MetaBean> cardPlanListForStatus(@FieldMap Map<String, String> param);

    /**
     * 卡片计划明细列表
     * @param param 请求参数
     * @return MetaBean
     */
    @FormUrlEncoded()
    @POST("app/client/repay/cardPlanDetailList.html")
    Observable<MetaBean> cardPlanDetailList(@FieldMap Map<String, String> param);

    /**
     * 取消计划
     * @param param 请求参数
     * @return MetaBean
     */
    @FormUrlEncoded()
    @POST("app/client/repay/cancelPlan.html")
    Observable<MetaBean> cancelPlan(@FieldMap Map<String, String> param);

    /**
     * 生成计划
     * @param param 请求参数
     * @return MetaBean
     */
    @FormUrlEncoded()
    @POST("app/client/repay/createPlan.html")
    Observable<MetaBean> createPlan(@FieldMap Map<String, String> param);

    /**
     * 修改计划还款天数
     * @param param 请求参数
     * @return MetaBean
     */
    @FormUrlEncoded()
    @POST("app/client/repay/updatePlanPaymentDays.html")
    Observable<MetaBean> updatePlanPaymentDays(@FieldMap Map<String, String> param);

    /**
     * 获取行业列表
     * @param param 请求参数
     * @return MetaBean
     */
    @FormUrlEncoded()
    @POST("app/client/repay/getMccList.html")
    Observable<MetaBean> getMccList(@FieldMap Map<String, String> param);

    /**
     * 执行计划
     * @param param 请求参数
     * @return MetaBean
     */
    @FormUrlEncoded()
    @POST("app/client/repay/executePlan.html")
    Observable<MetaBean> executePlan(@FieldMap Map<String, String> param);

    /**
     * 修改卡信息
     * @param param 请求参数
     * @return MetaBean
     */
    @FormUrlEncoded()
    @POST("app/client/repay/updateCard.html")
    Observable<MetaBean> updateCard(@FieldMap Map<String, String> param);

    /**
     * 修改卡信息
     * @param param 请求参数
     * @return MetaBean
     */
    @FormUrlEncoded()
    @POST("app/client/bank/updateCreditBank.html")
    Observable<MetaBean> updateCreditBank(@FieldMap Map<String, String> param);

    /**
     * 获取省市区
     * @return MetaBean
     */
    @GET("json/provinces.json")
    Observable<JSONObject> provinces(@QueryMap Map<String, String> param);
}
